Alloyの(->)
直積
code:_
n = { (N0) }
d = { (D0) }
n -> d = { (N0, D0) }
「直積」で説明できるが、直積の結果に対して解釈を入れられるmrsekut.icon
上記のn -> dは、nとdの直積(N0, D0)になるわけだが、
(N0, D0)というタプルはrelationと解釈できるので、
->を関数のように捉えて、N0とD0が対応付けられているとも読める
code:alloy
sig FileSystem {
contents: Dir lone-> FSObject,
parent: FSObject ->lone Dir
}
contents自体が関係になる
各FileSystemを、DirからFSObjectへマッピングする
関数と捉えるとlone->の解釈が難しくなる気がするmrsekut.icon
関係->がある上で、両端がどういう関係なのかを考えた後に量化子を振る、という風に考えれば良さそう
r: A some -> some Bみたいなやつ